有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过inten共享图像

 Bundle intent = getIntent().getExtras();`
 cardView=(CardView)findViewById(R.id.card);
 final String query = intent.getString("Query1");

 db = new DataBaseHelper(Image.this);    
 Cursor c = db.getData(query);
   if (c.getCount() != 0) {
       c.moveToFirst();
       do {
           image = c.getString(5);
           title=c.getString(3);
        } while (c.moveToNext());
    }   
    txt.setText(title);
    img.setImageDrawable(getResources().getDrawable(getResources().getIdentifier(image, "drawable", getPackageName())));

共 (2) 个答案

  1. # 1 楼答案

    使用内容提供商(FileProvider)共享数据是一种良好的做法

      Intent intent = new Intent(Intent.ACTION_SEND);
      final String path = "Your File Path";
      Uri uri = FileProvider.getUriForFile(YourActivity.this, "com.abc.xy.appname.fileprovider", new File(path));
      intent.setDataAndType(uri, "image/*");
       intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
       intent.putExtra(Intent.EXTRA_STREAM, uri);
       startActivity(intent);
    

    用于多文件共享

    ArrayList<Uri> files = new ArrayList<Uri>();
                for (int i = 0; i < mfileList.size(); i++) {
                    File file = new File(mfileList.get(i).get_path());
                    Uri uri = FileProvider.getUriForFile(YourActivity.this, "com.abc.xy.appname.fileprovider", file);
                    files.add(uri);
                }
    
                Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
                intent.setType("image/jpeg");
                    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    intent.putExtra(Intent.EXTRA_STREAM, files);
                    startActivity(intent);
    

    共享存储在绘图设备中的图像。将此Uri放入您的共享意图附加项中

    Uri uri = Uri.parse("android.resource://your.package/drawable/image_name");
    

    检查此链接以了解内容提供商设置

    [https://developer.android.com/reference/android/support/v4/content/FileProvider][1]

  2. # 2 楼答案

    要为映像创建共享意图,可以使用以下代码

    uriToImage是图像文件的Uri

    Intent shareIntent = new Intent();
    shareIntent.setAction(Intent.ACTION_SEND);
    shareIntent.putExtra(Intent.EXTRA_STREAM, uriToImage);
    shareIntent.setType("image/jpeg");
    startActivity(Intent.createChooser(shareIntent, getResources().getText(R.string.send_to)));
    

    EDIT - To get URI of drawable image

    Uri uri = Uri.parse("android.resource://your.package.here/drawable/image_name");